package com.shuhua.taskServer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shuhua.common.result.Result;
import com.shuhua.pojo.dto.TeamApplyAuditDTO;
import com.shuhua.pojo.dto.TeamApplyDTO;
import com.shuhua.pojo.entity.TeamApply;
import com.shuhua.pojo.vo.TeamApplyVO;

import java.util.List;

/**
 * 班组申请服务接口
 */
public interface TeamApplyService extends IService<TeamApply> {
    
    /**
     * 申请加入班组
     * @param teamApplyDTO 班组申请DTO
     * @return 申请结果
     */
    Result<TeamApply> applyJoinTeam(TeamApplyDTO teamApplyDTO);
    
    /**
     * 审核班组申请
     * @param teamApplyAuditDTO 班组申请审核DTO
     * @return 审核结果
     */
    Result<TeamApply> auditTeamApply(TeamApplyAuditDTO teamApplyAuditDTO);
    
    /**
     * 获取班组的申请列表（包含申请人详细信息）
     * @param teamId 班组ID
     * @return 申请列表
     */
    Result<List<TeamApplyVO>> getTeamApplies(Long teamId);
    
    /**
     * 获取工匠的申请列表（包含申请人详细信息）
     * @param craftsmanId 工匠ID
     * @return 申请列表
     */
    Result<List<TeamApplyVO>> getCraftsmanApplies(Long craftsmanId);
} 